A block move engine (BME) operates on blocks of data, which occupy rectangular regions when displayed. The block of data is read by the BME a single scan line at a time (i.e., a single dimension). To achieve 2 dimensional resizing or filtering, data is run through the BME twice, once with horizontal scanning and once with vertical scanning. The horizontal and vertical scanning can be interchanged. The results of the first pass (vertical or horizontal) are input for the second pass.
A basic scaling operation (without filtering) involves changing a number of pixels in an image by repeating or dropping pixel data in a regular pattern to obtain the required image scale factor (i.e., for 90% scaling, every 10th pixel is discarded). However visible distortions in the image appear.